package com.wiscamp.ninechapters.panels.domain.repositories;

import com.wiscamp.ninechapters.panels.domain.entities.Parameter;
import cube.ddd.common.query.PagedObjects;
import cube.ddd.common.query.PagedQuery;

import java.util.Collection;

public interface ParameterRepository {

    Parameter getParameter(long parameterId);

    Parameter getParameterByCode(long appId, String parameterCode);

    Collection<Parameter> getParametersByGroup(long appId, String parameterGroup);

    Collection<Parameter> getParametersByName(long appId, String parameterName);

    Collection<Parameter> getParametersByIds(Collection<Long> parameterIds);

    PagedObjects<Parameter> getParametersByQuery(PagedQuery query);

    Parameter saveParameter(Parameter parameter);
}
